package com.education.user.service;

import com.education.user.mapper.SysRoleMapper;
import com.education.user.pojo.SysRole;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 角色 服务层实现
 *
 * @author d
 * @date 2020-03-24
 */
@Service
public class  SysRoleService {


    @Autowired
    private SysRoleMapper sysRoleMapper;

    /**
     * 查询角色信息
     *
     * @param roleId 角色ID
     * @return 角色信息
     */
    public SysRole selectSysRoleById(Integer roleId) {
//        SysRole role = new SysRole();
//        role.setRoleId(roleId);
        return sysRoleMapper.selectByPrimaryKey(roleId);
    }

    /**
     * 查询角色列表
     *
     * @param sysRole 角色信息
     * @return 角色集合
     */
    public List<SysRole> selectSysRoleList(SysRole sysRole) {
        return sysRoleMapper.select(sysRole);
    }

    /**
     * 新增角色
     *
     * @param sysRole 角色信息
     * @return 结果
     */
    public int insertSysRole(SysRole sysRole) {
        return sysRoleMapper.insert(sysRole);
    }

    /**
     * 修改角色
     *
     * @param sysRole 角色信息
     * @return 结果
     */
    public int updateSysRole(SysRole sysRole) {
        SysRole role = new SysRole();
        //id
        if(sysRole.getRoleId()!=null) {
            role.setRoleId(sysRole.getRoleId());

            //角色名称
            if (sysRole.getRoleName() != null) {
                role.setRoleName(sysRole.getRoleName());
            }
            //权限字符
            if (sysRole.getRoleKey() != null) {
                role.setRoleKey(sysRole.getRoleKey());
            }
            //显示顺序
            if (sysRole.getRoleSort() != null) {
                role.setRoleSort(sysRole.getRoleSort());
            }
            //状态
            if (sysRole.getStatus() != null) {
                role.setStatus(sysRole.getStatus());
            }
            //备注
            if (sysRole.getRemark() != null) {
                role.setRemark(sysRole.getRemark());
            }
            //删除状态
            if (sysRole.getDelFlag() != null) {
                role.setDelFlag(sysRole.getDelFlag());
            }
        }
        return sysRoleMapper.updateByPrimaryKeySelective(role);
    }
    public Integer getUserNum(Integer roleId) {
        return sysRoleMapper.getUserNum(roleId);
    }
    /**
     * 删除角色对象
     *
     * @param id 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysRoleById(Integer id) {
        return sysRoleMapper.deleteByPrimaryKey(id);
    }
}